package com.gopay.common.domain.cps.transfer;

import java.math.BigDecimal;

import com.gopay.common.constants.approval.DecisionValue;
import com.gopay.common.constants.trans.DrawOpType;
import com.gopay.common.domain.BaseEntity;
import com.gopay.common.domain.acps.model.AcctMastBean;
import com.gopay.common.domain.bank.BcdlMessage;
import com.gopay.common.domain.cust.CustBankAcctInfo;

/**
 * @author zhangzg
 * 手机钱包 提现vo
 * @date 2015年10月28日 下午1:58:14
 * www.gopay.com.cn Inc.All rights reserved.
 */
public class Tran00800MBVO extends BaseEntity{

	private static final long serialVersionUID = -2024161488673038809L;

	public static final String MAPKEY_PAYORDER = "payOrder";
    public static final String MAPKEY_BANKLIST = "banklist";
    
    
    public static final  BigDecimal LIMIT_MONEY = new BigDecimal("9999999999.99");
	/**
	 * 唐阳 20160314 增加字段gatewaySource
	 * 由于生钱包提现交易复用手机钱包提现交易，所以需要增加gatewaySource，已区分生钱包
	 * 网关来源 05-- 手机钱包
	 * 生钱包 08
	 */
    private String gatewaySource;
    /**
     * 申请用户userId
     */
    private String userId;
    /**
     * 付款方账号
     */
    private String acctId;
    /**
     * 付款方账号名称
     */
    private String acctName;
    /**
     * 提现银行ID（仅申请）
     */
    private Long bankId;
    /**
     * 提现金额
     */
    private BigDecimal txnAmt;

    /**
     * 手续费金额
     */
    private BigDecimal feeAmt;
    
    /**
     * 国付宝订单号（申请为空）
     */
    private String gopayOrderId;
    /**
     * 支付密码（仅确认申请）
     */
    private String payPwd;

    /**
     * 操作类型：申请、申请确认、审核 DrawOpType
     */
    private DrawOpType opType;

    /**
     * 审批结果（仅控制台审批） DecisionValue
     */
    private DecisionValue decision;

    /**
     * 审批描述（仅控制台审批）
     */
    private String decisionMsg;

    /**
     * 控制台审批人
     */
    private String operatorId;

    /**
     * 提现银行数据
     */
    private CustBankAcctInfo bank;
    
    /**
     * 是否线下支付
     */
    private boolean isOffPay;
    
    /**
     * 线下付款银行代码
     */
    private String offLineBankCode;
    
    /**
     * 线下付款银行订单号
     */
    private String offLineBankOrderNum;
    
    /**
     * 付款客户
     */
    private String payCustId;

    /**
     * 银企直联
     */
    private BcdlMessage bcdl;
    
    /**
     * 指纹信息
     */
    private String fingerInfo;
    
    /**
     * 客户端Ip
     */
    private String clientIp;
    
    /**
     * 客户名
     */
    private String custName;
    
    /**
     * 账户信息（确认CPS赋值）
     */
    private AcctMastBean acct;
    
    /**
     * sessionId
     */
    private String sessionId;
    
    /**
     * 自动结算的节假日白名单规则ID
     */
    private String ruleId;
    
    /**
     * 是否自动结算转线下
     */
    private boolean isAuto2Offline = false;
    
    /**
     * 对应提现卡是对公还是对私
     */
    private String acctType;
    
    /**
     * 
     * custId
     */
    private String custId;
    
    /**
     * 动态口令
     * @return
     */
    private String dcPass;
    /**
     * 是否自动提现
     */
    private boolean isAutoDraw = false;
    /**
     * 是否为自定义支付密码
     * add by zhoupeng 20171124
     */
    private boolean pwdType = false;
    
	public boolean isPwdType() {
		return pwdType;
	}
	public void setPwdType(boolean pwdType) {
		this.pwdType = pwdType;
	}
	public String getGatewaySource() {
		return gatewaySource;
	}
	public void setGatewaySource(String gatewaySource) {
		this.gatewaySource = gatewaySource;
	}
	public String getUserId() {
		return userId;
	}
	public void setUserId(String userId) {
		this.userId = userId;
	}
	public String getAcctId() {
		return acctId;
	}
	public void setAcctId(String acctId) {
		this.acctId = acctId;
	}
	public String getAcctName() {
		return acctName;
	}
	public void setAcctName(String acctName) {
		this.acctName = acctName;
	}
	public Long getBankId() {
		return bankId;
	}
	public void setBankId(Long bankId) {
		this.bankId = bankId;
	}
	public BigDecimal getTxnAmt() {
		return txnAmt;
	}
	public void setTxnAmt(BigDecimal txnAmt) {
		this.txnAmt = txnAmt;
	}
	public BigDecimal getFeeAmt() {
		return feeAmt;
	}
	public void setFeeAmt(BigDecimal feeAmt) {
		this.feeAmt = feeAmt;
	}
	public String getGopayOrderId() {
		return gopayOrderId;
	}
	public void setGopayOrderId(String gopayOrderId) {
		this.gopayOrderId = gopayOrderId;
	}
	public String getPayPwd() {
		return payPwd;
	}
	public void setPayPwd(String payPwd) {
		this.payPwd = payPwd;
	}
	public DrawOpType getOpType() {
		return opType;
	}
	public void setOpType(DrawOpType opType) {
		this.opType = opType;
	}
	public DecisionValue getDecision() {
		return decision;
	}
	public void setDecision(DecisionValue decision) {
		this.decision = decision;
	}
	public String getDecisionMsg() {
		return decisionMsg;
	}
	public void setDecisionMsg(String decisionMsg) {
		this.decisionMsg = decisionMsg;
	}
	public String getOperatorId() {
		return operatorId;
	}
	public void setOperatorId(String operatorId) {
		this.operatorId = operatorId;
	}
	public CustBankAcctInfo getBank() {
		return bank;
	}
	public void setBank(CustBankAcctInfo bank) {
		this.bank = bank;
	}
	public boolean isOffPay() {
		return isOffPay;
	}
	public void setOffPay(boolean isOffPay) {
		this.isOffPay = isOffPay;
	}
	public String getOffLineBankCode() {
		return offLineBankCode;
	}
	public void setOffLineBankCode(String offLineBankCode) {
		this.offLineBankCode = offLineBankCode;
	}
	public String getOffLineBankOrderNum() {
		return offLineBankOrderNum;
	}
	public void setOffLineBankOrderNum(String offLineBankOrderNum) {
		this.offLineBankOrderNum = offLineBankOrderNum;
	}
	public String getPayCustId() {
		return payCustId;
	}
	public void setPayCustId(String payCustId) {
		this.payCustId = payCustId;
	}
	public BcdlMessage getBcdl() {
		return bcdl;
	}
	public void setBcdl(BcdlMessage bcdl) {
		this.bcdl = bcdl;
	}
	public String getFingerInfo() {
		return fingerInfo;
	}
	public void setFingerInfo(String fingerInfo) {
		this.fingerInfo = fingerInfo;
	}
	public String getClientIp() {
		return clientIp;
	}
	public void setClientIp(String clientIp) {
		this.clientIp = clientIp;
	}
	public String getCustName() {
		return custName;
	}
	public void setCustName(String custName) {
		this.custName = custName;
	}
	public AcctMastBean getAcct() {
		return acct;
	}
	public void setAcct(AcctMastBean acct) {
		this.acct = acct;
	}
	public String getSessionId() {
		return sessionId;
	}
	public void setSessionId(String sessionId) {
		this.sessionId = sessionId;
	}
	public String getRuleId() {
		return ruleId;
	}
	public void setRuleId(String ruleId) {
		this.ruleId = ruleId;
	}
	public boolean isAuto2Offline() {
		return isAuto2Offline;
	}
	public void setAuto2Offline(boolean isAuto2Offline) {
		this.isAuto2Offline = isAuto2Offline;
	}
	public String getCustId() {
		return custId;
	}
	public void setCustId(String custId) {
		this.custId = custId;
	}
	public String getDcPass() {
		return dcPass;
	}
	public void setDcPass(String dcPass) {
		this.dcPass = dcPass;
	}
	public boolean isAutoDraw() {
		return isAutoDraw;
	}
	public void setAutoDraw(boolean isAutoDraw) {
		this.isAutoDraw = isAutoDraw;
	}
	public static String getMapkeyPayorder() {
		return MAPKEY_PAYORDER;
	}
	public static String getMapkeyBanklist() {
		return MAPKEY_BANKLIST;
	}
	public static BigDecimal getLimitMoney() {
		return LIMIT_MONEY;
	}
	public String getAcctType() {
		return acctType;
	}
	public void setAcctType(String acctType) {
		this.acctType = acctType;
	}
    
    
}
